In some computing environments, services and applications are hosted by servers or server farms. For example, some customer relationship management (“CRM”) applications, personal information management (“PIM”) applications, and/or collaboration applications may be hosted by web-based and/or network-accessible applications hosted by one or more servers in addition to, or instead of, being executed by a personal computer or other user device.
By hosting applications on servers, application developers can distribute and apply updates, patches, and other application refinements more frequently than is possible for software sold or distributed to users for installation at user at devices. For example, incremental changes that otherwise may not justify an application upgrade may nonetheless be applied to an application hosted by a server, as mailing or shipping upgrade disks or other media is not required to effect the upgrade. Thus, the pace at which applications are upgraded and rolled out to consumers can be increased.
One challenge in updating hosted applications, however, is that such upgrades can be expensive and time consuming to perform or implement. Furthermore, if errors are experienced in the upgraded application, the application may be unusable for all users. Rolling back upgrades in the event of errors or other issues can be difficult in some circumstances, and may require taking the application offline. Thus, errors or other performance issues experienced in a hosted application upgrade can be expensive to repair and/or can seriously affect the user experience with the application.
It is with respect to these and other considerations that the disclosure made herein is presented.